The present invention relates to the use of communication networks such as the Internet for providing online services. In particular, the present invention provides techniques for performing services in a network environment in a secure and scalable manner.
With the widespread use of computers, an expanding telecommunication network, and the rising popularity of communication networks such as the Internet, an increasing number of transactions and services are performed online using computer systems coupled to the communication network. Computer systems connected to communication networks such as the Internet can generally be classified as “clients” or “servers” depending on the role the computer systems play with respect to requesting information and services or providing information and services. Computer systems that are used by users to request information or to request a service are classified as “client” computers (or “clients”). Computers systems that store information and provide the information in response to a user request received from a client computer, or computer systems that perform processing to provide the user-requested services are called “server” computers (or “servers”). A particular computer system may function both as a client and as a server.
Accordingly, a user may initiate a request to perform a service (referred to as a “service request”) using a client computer coupled to a communication network such as the Internet. In the World Wide Web (“Web”) environment, a user may initiate a service request by accessing a web page from a web site hosted by a server coupled to the communication network, and configuring a service request via the web page. The web page provides an interface via which a user can select one or more services to be performed and provide the data for performing the services.
A web page is a form of a hypertext document that may incorporate any combination of text, graphics, audio and video content, software programs, and other data. Web pages may also contain hypertext links to other web pages. Each web page is uniquely identified by an address called a Uniform Resource Locator (URL) that enables users to access the web page. Users typically access web pages using a program called a “web browser” which generally executes on a client user computer coupled to the Internet. A browser enables users to access and interact with web pages. Users generally access web pages by providing URL information to the browser, either directly or indirectly, and the browser responds by retrieving the web page corresponding to the user-provided URL and displaying the web page to the user. Examples of browsers include the Internet Explorer browser program provided by Microsoft Corporation, the Netscape Navigator browser provided by Netscape Corporation, and others.
Servers that store web pages and host web sites are generally referred to as “web servers.” Web servers are responsible for receiving web page requests from client systems, and for communicating web pages requested by the clients back to the requesting client systems. In conventional network-based transaction systems, web servers are also configured to perform services requested by clients via service requests. Code modules stored and executed by the web servers generally provide the services. Accordingly, in conventional transaction systems, the web servers not only host web sites storing web pages, but also perform processing to complete/perform the user-requested service.
Since the service is performed by the web servers themselves, conventional transaction and service provider systems comprising one or more web servers require substantial computing and storage resources to be able to operate across high speed network connections and to service multiply connected users (clients) in parallel. Further, to ensure satisfactory performance, the systems are typically designed to handle the worst-case user count scenario. As a result, conventional web server-based service provider systems are very expensive and require constant maintenance to reduce downtime, which further adds to the cost of performing a service.
Conventional web server-based service provider systems are also susceptible to attack by vandals or hackers intent on damaging or disrupting the transaction service provided by the servers. For example, hackers may maliciously “crowd” a particular web server (i.e., swamp the web server with service requests) in order to degrade the performance of the web server. Further, since service request processing is done by the web server itself, the code modules that perform processing related to the service requests and the databases used for the processing are stored by the web servers themselves. Since the web servers can be easily accessed by user clients, these code modules and databases are susceptible to vandals and hackers intent on gaining access to confidential or trade secret information contained in the code modules, the databases, etc.
In light of the above, there is a need for techniques which allow services to be provided in a network-based environment in a secure manner. It is also desirable that the techniques be scalable and economical.